var g_curren_node;  //当前选中的节点
var g_dataObj;

var draw;
$(function () {
    //创建拓扑图画板
    createDraw();
    //初始化节点双击的的下拉选择框
    initPageEvent();
    //初始化双击对话框
    initDialog();

});
//初始化节点双击对话框 及创建ComboboxTree控件
function initDialog() {
    $('#node-dlg').dialog({
        width: 400,
        height: 'auto',
        closed: true,
        cache: false,
        modal: true,
        title:'中间件选择',
        buttons: [{
            text: '确认',
            iconCls: 'icon-save',
            handler: function () {
                var node = $('#nodeCode').combotree('tree').tree('getSelected');
                if (node!=null){
                    //注意comboboxTree中的id必须不一样,否则会出现BUG
                    g_curren_node.$nodeData[g_curren_node.$focus].appCode = node.app_code;
                    g_curren_node.$nodeData[g_curren_node.$focus].appName = node.app_name;
                    g_curren_node.$nodeData[g_curren_node.$focus].nodeCode = node.id;
                    g_curren_node.$nodeData[g_curren_node.$focus].nodeName = node.text;
                    g_curren_node.$nodeData[g_curren_node.$focus].hostCode = node.host_code;
                    g_curren_node.$nodeData[g_curren_node.$focus].hostName = node.host_name;
                    g_curren_node.$nodeData[g_curren_node.$focus].hostIp = node.host_ip;
                    g_curren_node.$nodeData[g_curren_node.$focus].nodeType = node.node_type;
                    //设置节点的名称
                    var name = node.text.replace('(中间件)','');
                    g_curren_node.setName(g_curren_node.$textArea.data("id"),name,"node");
                    //改变节点的图标
                    g_curren_node.setIconClass(g_curren_node.$textArea.data("id"),node.node_type);
                }else{
                    apexLayer.Warn("请选择中间件");
                    return;
                }
                $('#node-dlg').dialog('close');
            }
        }],
        onClose: function () {
        }
    });

    //创建ComboboxTree控件
    $('#nodeCode').combotree({
        url: contextPath + '/console/appNode/getAllNodeForComboBoxTree',
        valueField: 'id',
        textField: 'text',
        required: true,
        ines: true,
        onClick: function (node) {
            if (node.type == "app"){
                $('#nodeCode').combotree('setValues','');
                apexLayer.Msg("请选择中间件");
                $("#appName").text("");
                $("#hostIp").text("");
                $("._info").addClass("hide");
                return false;
            }else{
                $("._info").removeClass("hide");
                $("#appName").text(node.app_name);
                $("#hostIp").text(node.host_ip);
            }
        }
    });
}

//创建拓扑图
function createDraw() {
    var packWidth = document.body.clientWidth;   //工作区宽度
    var packHeight = document.body.clientHeight -55; //工作区高度
    //面板属性
    var property={
        width:packWidth,
        height:packHeight,
        haveHead:false,
        toolBtns:["http round"],
        haveTool:true,
        haveGroup:false,
        useOperStack:false
    };
    //备注信息
    var remark={
        cursor:"选择指针",
        direct:"结点连线",
        "http":"结点",
    };
    //创建拓年图
    draw=$.createDraw($("#draw"),property);
    //设置节点的说明
    draw.setNodeRemarks(remark);
    //加载数据
    draw.clearData();
    $.ajax({
        type: 'post',
        url: contextPath + '/console/scheme/getContent',
        dataType: 'json',
        data: {
            schemeCode: schemeCode
        },
        success: function (result) {
            if (result.code == 1){
                var dataObj = JSON.parse(result.object.content);
                draw.loadData(dataObj);
                g_dataObj = JSON.stringify(draw.exportData());
            }else{
                apexLayer.Warn(result.note);
            }
        },
        error: function (xhr, status, error) {
            apexLayer.Warn("调用服务失败");
        }
    });
}

//初始化页面按钮事件
function initPageEvent() {
    //清除数据
    $("#cleanBtn").bind('click',function () {
        draw.clearData();
    });
    //保存
    $("#saveBtn").bind('click',function () {
        draw.setTitle(schemeTitle);
        var content = JSON.stringify(draw.exportData());
        $.ajax({
            type: 'post',
            url: contextPath + '/console/scheme/updateContent',
            dataType: 'json',
            data: {
                content: content,
                schemeCode: schemeCode
            },
            success: function (result) {
                if (result.code == 1){
                    g_dataObj = JSON.stringify(draw.exportData());
                    apexLayer.Msg("保存成功!");
                }else{
                    apexLayer.Warn(result.note);
                }
            },
            error: function (xhr, status, error) {
                apexLayer.Warn("调用服务失败");
            }
        });
    });
    //返回
    $("#backBtn").bind('click',function () {
        console.log(JSON.stringify(draw.exportData())== JSON.stringify(g_dataObj));
        if (JSON.stringify(draw.exportData())!= g_dataObj){
            apexLayer.Confirm("数据尚未保存,是否确认退出？",
                "",
                "确认",
                "取消",
                function () {
                    window.location.href = contextPath +"/console/scheme/listByPage";
                },
                function () {
                    return;
                }
            )
        }else{
            window.location.href = contextPath +"/console/scheme/listByPage";
        }

    });


    //加载数据
    $("#loadBtn").bind('click',function () {


    });
    //导出数据
    $("#exportBtn").bind('click',function () {
        var val = JSON.stringify(draw.exportData());
        alert(val);
    });
    //变颜色
    $("#changeColorBtn").bind('click',function () {
        var nodeId = "draw_node_1";
        var lineId = "draw_line_7";
        draw.changeColor(nodeId,lineId);
    });

}




// /**
//  * 查询所有应用(暂时没用)
//  */
// function getAllApp(jqElement,appCode,nodeCode) {
//     jqElement.combobox({//应用
//         method: 'get',
//         url: contextPath + '/console/app/getAllApp',
//         valueField: 'appCode',
//         textField: 'appName',
//         editable: false,
//         panelHeight:　'auto',
//         //:　'----请选择----',
//         onLoadSuccess: function (data) {
//             if (typeof appCode != ""){
//                 if (data.length > 0){
//                     for(var i =0 ;i<data.length;i++){
//                         if(data[i].appCode==appCode){
//                             jqElement.combobox('select', data[i].appCode);
//                         }
//                     }
//                 }
//                 if (nodeCode!=""){
//                     getAllNode($("#nodeCode"),appCode,nodeCode);
//                 }
//             }
//         },
//         onLoadError: function () {
//
//         },
//         onShowPanel: function () {
//             $(this).combobox('panel').height();
//         },
//         onChange: function (newValue,oldValue) {
//             getAllNode($("#nodeCode"),newValue,'');
//         }
//     });
// }
//

// /**
//  * 查询所有节点
//  */
// function getAllNode(jqElement,appCode,nodeCode) {
//     jqElement.combobox({//应用
//         method: 'get',
//         url: contextPath + '/console/appNode/getAllNodeNoSelect?appCode='+appCode,
//         valueField: 'nodeCode',
//         textField: 'nodeName',
//         editable: false,
//         panelHeight:　'auto',
//         //:　'----请选择----',
//         onLoadSuccess: function (data) {
//             if (typeof nodeCode != ""){
//                 if (data.length > 0){
//                     for(var i =0 ;i<data.length;i++){
//                         if(data[i].nodeCode==nodeCode){
//                             jqElement.combobox('select', data[i].nodeCode);
//                         }
//                     }
//                 }
//             }
//         },
//         onLoadError: function () {
//
//         },
//         onShowPanel: function () {
//             $(this).combobox('panel').height();
//         },
//         onChange: function (newValue,oldValue) {
//         }
//     });
// }